package com.atguigu.gulimall.product.vo;

import com.atguigu.gulimall.product.entity.SkuImagesEntity;
import com.atguigu.gulimall.product.entity.SkuInfoEntity;
import com.atguigu.gulimall.product.entity.SpuInfoDescEntity;
import lombok.Data;

import java.util.List;

/**
 * @DESCRIPTION: 商品详情数据返回
 * @author: zr
 * @DATE: 2022/12/25 19:16
 */
@Data
public class SkuItemVo {
    /**
     * 1、sku基本信息获取 pms_sku_info
     */
    private SkuInfoEntity info;
    /**
     * 2、sku的图片信息 pms_sku_images
     */
    private List<SkuImagesEntity> images;
    /**
     * 3、获取sku的销售属性组合
     */
    private List<SkuItemSaleAttrVo> saleAttr;
    /**
     * 4、获取spu的介绍
     */
    private SpuInfoDescEntity desc;
    /**
     * 5、获取spu的规格参数信息
     */
    private List<SpuItemAttrGroupVo> groupAttrs;
    /**
     * 是否有货 默认有货
     */
    private Boolean hasStock = true;

    @Data
    public static class SkuItemSaleAttrVo {
        /**
         * 属性id
         */
        private Long attrId;
        /**
         * 属性名
         */
        private String attrName;
        /**
         * 属性值
         */
        private List<AttrValueWithSkuIdVo> attrValues;
    }

    @Data
    public static class SpuItemAttrGroupVo {
        /**
         * 分组名
         */
        private String groupName;
        /**
         * 当前分组下的所有属性
         */
        private List<SpuBaseAttrVo> attrs;
    }

    @Data
    public static class SpuBaseAttrVo {
        /**
         * 属性名
         */
        private String attrName;
        /**
         * 属性值
         */
        private String attrValue;
    }
}
